import { message } from "ant-design-vue";
import axios from "axios";

axios.defaults.baseURL = '/api/auth'
axios.defaults.timeout = 10000
axios.interceptors.request.use(
  function (config) {
    // Do something before request is sent
    config.headers = Object.assign(config.headers,
      {
        'Content-Type': 'application/json'
      }
    )
    return config
  },
  function (error) {
    // Do something with request error
    return Promise.reject(error)
  }
)
axios.interceptors.response.use((config) => {
  return config
}, (error) => {
  switch (error.response.status) {
    case 422:
      message.error(error.response.data.msg)
      break;
    default:
      break;
  }
})
export default axios
// import axios from 'axios'

// import store from '@/store'

// let is302count = 0

// axios.default.withCredentials = true
// const service = axios.create({
//   baseURL: '/api/auth',
//   withCredentials: true,
//   timeout: 25000
// })

// // request interceptor
// service.interceptors.request.use(
//   (config) => {
//     // do something before request is sent
//     // 如果是get请求 参数增加时间戳，否则ie可能会不走服务器从缓存拿数据
//     if (config.method.toLowerCase() === 'get') {
//       const t = new Date().getTime()
//       if (config.params) {
//         config.params['t'] = t
//       } else {
//         if (config.url.indexOf('?') > -1) {
//           config.url += `&t=${t}`
//         } else {
//           config.url += `?t=${t}`
//         }
//       }
//     }
//     return config
//   },
//   (error) => {
//     console.log(error)
//     return Promise.reject(error)
//   }
// )

// // response interceptor
// service.interceptors.response.use(
//   (response) => {
//     const res = response.data
//     if (res.status !== '1') {
//       let msg = res.msg
//       if (
//         res.hasOwnProperty('actionModel') &&
//         res.actionModel.hasOwnProperty('descr')
//       ) {
//         msg = res.actionModel.descr
//       }
//       if (res.status === '500') {
//         // 500错误
//         Message({
//           message: msg || 'Error',
//           type: 'error',
//           duration: 3 * 1000
//         })
//         // store.dispatch('user/error500')
//       } else if (res.status === '404') {
//         // 404错误
//         Message({
//           message: '404',
//           type: 'error',
//           duration: 3 * 1000
//         })
//         // store.dispatch('user/error404')
//       } else {
//         Message({
//           message: msg || 'Error',
//           type: 'error',
//           duration: 3 * 1000
//         })
//       }
//       return Promise.reject(new Error(res.msg || 'Error'))
//       // return Promise.reject(new Error(JSON.stringify(res) || 'Error'))
//       // return res
//     } else {
//       return res
//     }
//   },
//   (error) => {
//     // console.log('err' + error) // for debug
//     let msg = error.message
//     if (error.response) {
//       // console.log(error.response)
//       if (error.response.status === 302) {
//         is302count++
//         msg = '登录状态失效，请重新登录！'
//         if (is302count <= 1) {
//           store.dispatch('user/logoutResetInfos')
//           Message({
//             message: msg,
//             type: 'error',
//             duration: 3 * 1000,
//             onClose: function () {
//               is302count = 0
//             }
//           })
//         }
//         if (error.response.status === 500) {
//           Message({
//             message: msg || 'Error',
//             type: 'error',
//             duration: 3 * 1000
//           })
//         }
//         if (error.response.status === 404) {
//           Message({
//             message: '404',
//             type: 'error',
//             duration: 3 * 1000
//           })
//         }
//       }

//       return Promise.reject(error)
//     }
//   }
// )

// // get请求
// export const $getReq = (url, params) => {
//   return service({
//     url: url,
//     method: 'get',
//     params: params
//   })
// }

// // post请求
// export const $postReq = (url, data) => {
//   return service({
//     url: url,
//     method: 'post',
//     data: data
//   })
// }

// export default service